package com.example.shop.user.service;

import com.example.shop.common.api.ServiceReturn;
import com.example.shop.pojo.User;
import com.example.shop.user.dto.AddLinkmanParam;
import com.example.shop.user.vo.LinkmanInfo;
import com.example.shop.user.dto.ModifyLinkmanParam;

import java.util.List;

public interface LinkmanService {

    /**
     * 为该用户添加一个联系人
     * @param user 关联该操作的用户
     * @param addInfo 要添加的联系人的信息
     * @return 返回联系人视图信息
     */
    ServiceReturn<LinkmanInfo> addLinkman(User user, AddLinkmanParam addInfo);

    /**
     * 删除一个联系人
     * @param user 关联该操作的用户
     * @param linkmanId 要删除联系人的id
     * @return 返回删除状态，如果删除成功则返回true
     */
    ServiceReturn<Boolean> deleteLinkman(User user,long linkmanId);

    /**
     * 获取一个联系人的信息
     * @param user 关联该操作的用户
     * @param linkmanId 要获取联系人的id
     * @return 返回一个联系人的信息
     */
    ServiceReturn<LinkmanInfo> getLinkman(User user,long linkmanId);

    /**
     * 获取该用户的地址簿书
     * @param user 要获取的用户
     * @return 返回一个地址簿书
     */
    ServiceReturn<List<LinkmanInfo>> getAddressBook(User user);

    /**
     * 修改联系人信息
     * @param user 关联该操作的用户
     * @param modifyInfo 要修改的信息
     * @return 返回修改后的联系人信息
     */
    ServiceReturn<LinkmanInfo> modifyLinkmanInfo(User user, ModifyLinkmanParam modifyInfo);

}
